package com.gxuwz.eschool;

import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.InputType;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

import androidx.activity.result.ActivityResult;
import androidx.activity.result.ActivityResultCallback;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import com.gxuwz.eschool.config.SpUtil;

import java.util.ArrayList;
import java.util.List;

public class kaChognzhiActivity extends AppCompatActivity {
    //定义点击返回按钮
    private Button btn_back;
    //定义显示金额的视图
    private TextView balanceTextView;
    //初始化金额选项，对应页面初始化选项
    private RadioGroup rechargeAmountRadioGroup;
    //定义充值的按钮
    private Button btn_chognzhi;
    //定义为其他人充值按钮
    private Button rechargeForOthersButton;
    // 初始金额,我的
    private double totalBalance = 44.39;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ka_chong_zhi); // 使用你的首页布局
        //去除默认标题栏
        ActionBar actionBar=getSupportActionBar();
        if(actionBar!=null){
            actionBar.hide();
        }
        // 初始化视图
        balanceTextView = findViewById(R.id.tv_balance);
        //选择需要种子的金额
        rechargeAmountRadioGroup = findViewById(R.id.rg_recharge_amount);
        //充值
        btn_chognzhi = findViewById(R.id.btn_chognzhi);
        //为他人充值
        rechargeForOthersButton = findViewById(R.id.btn_recharge_for_others);

        // 设置RadioButton监听器,这个就是用来监听页面选项金额那里
        rechargeAmountRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                if (checkedId == R.id.rb_other) {
                    // 显示对话框让用户输入金额
                    showInputDialog();
                }
            }
        });

        // 设置充值按钮监听器,充值
        btn_chognzhi.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int checkedRadioButtonId = rechargeAmountRadioGroup.getCheckedRadioButtonId();//获取相应ID
                if (checkedRadioButtonId != -1) {//不等于-1,表示成功
                    int amount = getAmountFromRadioButton(checkedRadioButtonId);
                    recharge(amount);//进行充值金额，下面有对应的充值方法
                } else {
                    // 如果没有选择任何RadioButton，显示提示或错误
                    Toast.makeText(kaChognzhiActivity.this, "错误，充值失败！", Toast.LENGTH_SHORT).show();
                }
            }
        });

        // 设置“为他人充值”按钮监听器（这里只是示例，你可以根据需要处理）
        rechargeForOthersButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 处理“为他人充值”逻辑
                Toast.makeText(kaChognzhiActivity.this, "这里还没有实现！", Toast.LENGTH_SHORT).show();
            }
        });
        //方法区
        fanhui();//返回首页
        updateBalanceDisplay();// 初始显示余额

        //当点击
    }
    public void fanhui() {
        btn_back =  findViewById(R.id.btn_back);
        //返回首页,物理返回就行了
        btn_back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();//默认的返回类型，等同于按下了物理返回键
            }
        });

    }
    //充值的相应方法
    private void recharge(int amount) {
        totalBalance += amount;//初始金额加上充值的金额
        updateBalanceDisplay();//显示初始金额
        // 充值成功的提示
        Toast.makeText(this, "充值成功，当前余额：" + totalBalance, Toast.LENGTH_SHORT).show();
        //保存记录
        SpUtil.getInstance().addMessageRecord("系统成功充值" + amount + "元！" + totalBalance);
    }
    //选择充值的金额
    private int getAmountFromRadioButton(int radioButtonId) {
        if (radioButtonId == R.id.rb_10) {
            return 10;
        } else if (radioButtonId == R.id.rb_20) {
            return 20;
        } else if (radioButtonId == R.id.rb_30) {
            return 30;
        } else {
            // 如果你想抛出异常，则可以使用以下代码
//             throw new IllegalArgumentException("选择相应的ID: " + radioButtonId);
            return 0;
        }
    }
    //当点击其他金额时，弹出来的对话框，让输入充值金额
    private void showInputDialog() {
        // 创建一个AlertDialog.Builder实例
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        // 设置对话框的标题
        builder.setTitle("输入金额");

        // 创建一个EditText来接收用户输入
        final EditText input = new EditText(this);
        input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); // 设置输入类型为数字（包括小数）

        // 设置对话框的内容（这里我们使用EditText作为内容）
        builder.setView(input);

        // 设置对话框的确认按钮，并指定点击后的操作
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // 获取用户输入的内容
                String amountString = input.getText().toString();

                // 这里你可以根据需要对amountString进行处理，比如转换为int或float
                try {
                    double amount = Double.parseDouble(amountString);
                    // 在这里可以使用amount进行后续操作
                    totalBalance += amount;
                    Toast.makeText(kaChognzhiActivity.this, "输入的金额是： " + amount + "确认后点击充值即可成功充值！", Toast.LENGTH_SHORT).show();
                } catch (NumberFormatException e) {
                    // 处理非法输入（非数字输入）
                    Toast.makeText(kaChognzhiActivity.this, "请输入有效的金额", Toast.LENGTH_SHORT).show();
                }
            }
        });

        // 设置对话框的取消按钮
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // 取消对话框时的操作，什么都不做
                dialog.cancel();
            }
        });

        // 创建并显示对话框
        builder.create().show();
    }

    private void updateBalanceDisplay() {
        balanceTextView.setText("当前余额：" + totalBalance + "元");
    }
}

